package com.fand.platform.configuration.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.configuration.dto.DictionaryTyDto;
import com.fand.platform.configuration.dto.DictionaryDto;
import com.fand.platform.configuration.dto.DictionaryLaDto;

/**
 * 字典服务
 *
 * @author yaoHT
 */
public interface DictionaryService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.configuration.service.DictionaryService";

	String CACHE_NAME = BEAN_ID + "Cache";
	/**
	 * 保存:字典类型
	 * 
	 * @param saveDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTyDto saveDictionaryTyByIdOrCodeForDictionaryTy(DictionaryTyDto saveDictionaryTy);

	/**
	 * 保存:字典类型
	 * 
	 * @param saveDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTyDto saveDictionaryTyBy2ForDictionaryTy(DictionaryTyDto saveDictionaryTy);

	/**
	 * 删除:字典类型
	 * 
	 * @param deleteDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryTyBy1(DictionaryTyDto deleteDictionaryTy);

	/**
	 * 删除:字典类型
	 * 
	 * @param deleteDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryTyByIds(DictionaryTyDto deleteDictionaryTy);

	/**
	 * 设置:字典类型
	 * 
	 * @param setDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryTyBy1(DictionaryTyDto setDictionaryTy);

	/**
	 * 设置:字典类型
	 * 
	 * @param setDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryTyBy2(DictionaryTyDto setDictionaryTy);

	/**
	 * 读取:字典类型
	 * 
	 * @param readDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	Integer readDictionaryTyByCodeNqIdForInteger(DictionaryTyDto readDictionaryTy);

	/**
	 * 读取:字典类型
	 * 
	 * @param readDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	Integer readDictionaryTyBy2ForInteger(DictionaryTyDto readDictionaryTy);

	/**
	 * 读取:字典类型
	 * 
	 * @param readListDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<Integer> readListDictionaryTyBy1(DictionaryTyDto readDictionaryTy);

	/**
	 * 读取:字典类型
	 * 
	 * @param readListDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<Integer> readListDictionaryTyBy2(DictionaryTyDto readDictionaryTy);

	/**
	 * 查询:字典类型
	 * 
	 * @param getDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTyDto getDictionaryTyBy1(DictionaryTyDto getDictionaryTy);

	/**
	 * 查询:字典类型
	 * 
	 * @param getDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象
	 */
	DictionaryTyDto getDictionaryTyById(DictionaryTyDto getDictionaryTy);

	/**
	 * 查询:字典类型
	 * 
	 * @param findDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<DictionaryTyDto> findDictionaryTyBy1(DictionaryTyDto findDictionaryTy);

	/**
	 * 查询:字典类型
	 * 
	 * @param findDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型对象集合
	 */
	List<DictionaryTyDto> findDictionaryTyBy2(DictionaryTyDto findDictionaryTy);
	
	/**
	 * 分页:字典类型
	 * 
	 * @param paginationDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型分页对象
	 */
	PaginationDto<DictionaryTyDto> paginationDictionaryTyBy1ForDictionaryTyList(DictionaryTyDto paginationDictionaryTy);
			
	/**
	 * 分页
	 * 
	 * @param paginationDictionaryTy
	 *            字典类型对象
	 * 
	 * @return 字典类型分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDictionaryTyBy1ForMapList(DictionaryTyDto paginationDictionaryTy);
	/**
	 * 保存:字典
	 * 
	 * @param saveDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto saveDictionaryByIdOrCodeForDictionary(DictionaryDto saveDictionary);

	/**
	 * 保存:字典
	 * 
	 * @param saveDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto saveDictionaryBy2ForDictionary(DictionaryDto saveDictionary);

	/**
	 * 删除:字典
	 * 
	 * @param deleteDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryBy1(DictionaryDto deleteDictionary);

	/**
	 * 删除:字典
	 * 
	 * @param deleteDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryByIds(DictionaryDto deleteDictionary);

	/**
	 * 设置:字典
	 * 
	 * @param setDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryBy1(DictionaryDto setDictionary);

	/**
	 * 设置:字典
	 * 
	 * @param setDictionary
	 *            字典对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryBy2(DictionaryDto setDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	Integer readDictionaryByCodeNqIdForInteger(DictionaryDto readDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	Integer readDictionaryBy2ForInteger(DictionaryDto readDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readListDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<Integer> readListDictionaryBy1(DictionaryDto readDictionary);

	/**
	 * 读取:字典
	 * 
	 * @param readListDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<Integer> readListDictionaryBy2(DictionaryDto readDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param getDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto getDictionaryBy1(DictionaryDto getDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param getDictionary
	 *            字典对象
	 * 
	 * @return 字典对象
	 */
	DictionaryDto getDictionaryById(DictionaryDto getDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<DictionaryDto> findDictionaryBy1(DictionaryDto findDictionary);

	/**
	 * 查询:字典
	 * 
	 * @param findDictionary
	 *            字典对象
	 * 
	 * @return 字典对象集合
	 */
	List<DictionaryDto> findDictionaryBy2(DictionaryDto findDictionary);
	
	/**
	 * 分页:字典
	 * 
	 * @param paginationDictionary
	 *            字典对象
	 * 
	 * @return 字典分页对象
	 */
	PaginationDto<DictionaryDto> paginationDictionaryBy1ForDictionaryList(DictionaryDto paginationDictionary);
			
	/**
	 * 分页
	 * 
	 * @param paginationDictionary
	 *            字典对象
	 * 
	 * @return 字典分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDictionaryBy1ForMapList(DictionaryDto paginationDictionary);
	/**
	 * 保存:字典与语言
	 * 
	 * @param saveDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	DictionaryLaDto saveDictionaryLaByIdOrCodeForDictionaryLa(DictionaryLaDto saveDictionaryLa);

	/**
	 * 保存:字典与语言
	 * 
	 * @param saveDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	DictionaryLaDto saveDictionaryLaBy2ForDictionaryLa(DictionaryLaDto saveDictionaryLa);

	/**
	 * 删除:字典与语言
	 * 
	 * @param deleteDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryLaBy1(DictionaryLaDto deleteDictionaryLa);

	/**
	 * 删除:字典与语言
	 * 
	 * @param deleteDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteDictionaryLaByIds(DictionaryLaDto deleteDictionaryLa);

	/**
	 * 设置:字典与语言
	 * 
	 * @param setDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryLaBy1(DictionaryLaDto setDictionaryLa);

	/**
	 * 设置:字典与语言
	 * 
	 * @param setDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 影响行数
	 */
	int setDictionaryLaBy2(DictionaryLaDto setDictionaryLa);

	/**
	 * 读取:字典与语言
	 * 
	 * @param readDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	Integer readDictionaryLaByCodeNqIdForInteger(DictionaryLaDto readDictionaryLa);

	/**
	 * 读取:字典与语言
	 * 
	 * @param readDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	Integer readDictionaryLaBy2ForInteger(DictionaryLaDto readDictionaryLa);

	/**
	 * 读取:字典与语言
	 * 
	 * @param readListDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象集合
	 */
	List<Integer> readListDictionaryLaBy1(DictionaryLaDto readDictionaryLa);

	/**
	 * 读取:字典与语言
	 * 
	 * @param readListDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象集合
	 */
	List<Integer> readListDictionaryLaBy2(DictionaryLaDto readDictionaryLa);

	/**
	 * 查询:字典与语言
	 * 
	 * @param getDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	DictionaryLaDto getDictionaryLaBy1(DictionaryLaDto getDictionaryLa);

	/**
	 * 查询:字典与语言
	 * 
	 * @param getDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象
	 */
	DictionaryLaDto getDictionaryLaById(DictionaryLaDto getDictionaryLa);

	/**
	 * 查询:字典与语言
	 * 
	 * @param findDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象集合
	 */
	List<DictionaryLaDto> findDictionaryLaBy1(DictionaryLaDto findDictionaryLa);

	/**
	 * 查询:字典与语言
	 * 
	 * @param findDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言对象集合
	 */
	List<DictionaryLaDto> findDictionaryLaBy2(DictionaryLaDto findDictionaryLa);
	
	/**
	 * 分页:字典与语言
	 * 
	 * @param paginationDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言分页对象
	 */
	PaginationDto<DictionaryLaDto> paginationDictionaryLaBy1ForDictionaryLaList(DictionaryLaDto paginationDictionaryLa);
			
	/**
	 * 分页
	 * 
	 * @param paginationDictionaryLa
	 *            字典与语言对象
	 * 
	 * @return 字典与语言分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDictionaryLaBy1ForMapList(DictionaryLaDto paginationDictionaryLa);
}